//////////////////////////////////////////////////////////////////////////
#pragma once


//////////////////////////////////////////////////////////////////////////
#include <RocketLua/RocketLua.hpp>


namespace Rocket
{
	namespace Core
	{
		namespace Lua
		{
			//////////////////////////////////////////////////////////////////////////
			class ROCKETLUA_EXPORT Colorb
			{
			public:
				Colorb();
				Colorb( uint8_t r, uint8_t g, uint8_t b, uint8_t a );

				Colorb&				Set( uint8_t r, uint8_t g, uint8_t b, uint8_t a );

				bool				operator ==( const Colorb& rhs ) const;

				Colorb				operator +( const Colorb& rhs ) const;
				Colorb				operator -( const Colorb& rhs ) const;
				Colorb				operator *( uint8_t rhs ) const;
				Colorb				operator /( uint8_t rhs ) const;

				uint8_t				R() const;
				uint8_t				G() const;
				uint8_t				B() const;
				uint8_t				A() const;
				void				R( uint8_t );
				void				G( uint8_t );
				void				B( uint8_t );
				void				A( uint8_t );

				static void			Register( lua_State* );

			private:
				//
				uint8_t				mR;
				uint8_t				mG;
				uint8_t				mB;
				uint8_t				mA;
			};
		}
	}
}
